import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.Iterator;
/**
 * Write a description of class Scenario here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Scenario extends World
{
    List list;
    int direccion=0;
    GreenfootImage img;
    
    /**
     * Constructor for objects of class Scenario.
     * 
     */
    public Scenario()
    {    
        super(600, 600, 1); 
        menu();
        prepare();      
        list=getObjects(Elemento.class);
        //img=getBackground();

        // prepare();

        prepare();
    }

    
    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
    public void act()
    {
       
         if(Greenfoot.isKeyDown("right"))
        {
             giraDerecha();
             direccion=0;
        }
        
         if(Greenfoot.isKeyDown("left"))
        {
            giraIzquierda();
            direccion=1;
        }
      
    }

   
    private void giraDerecha()
    {
        Iterator it=list.listIterator();
        while(it.hasNext()){
         Elemento e=(Elemento)it.next();
         e.giraDer2(1);
        }

    }
       
    private void giraIzquierda()
    {
        Iterator it=list.listIterator();
        while(it.hasNext()){
         Elemento e=(Elemento)it.next();
         e.giraIzq(1);       
        }
    }
    
     
    /**
     * Prepare the world for the start of the program. That is: create the initial
     * objects and add them to the world.
     */
    private void prepare()
    {
        Vidas vidas = new Vidas();
        addObject(vidas, 116, 32);

        Bloque bloque8 = new Bloque();
        Bloque bloque10 = new Bloque();
        Bloque bloque11 = new Bloque();

        addObject(bloque8, 200, 205);
        addObject(bloque10, 344, 330);
        addObject(bloque11, 317, 529);

        bloque8.turn(45);
        bloque10.turn(135);

        VentiladorIzq ventilador2 = new VentiladorIzq();
        VentiladorIzq ventilador22 = new VentiladorIzq();
        VentiladorDer ventilador = new VentiladorDer();
        VentiladorDer ventilador3 = new VentiladorDer();

        addObject(ventilador2, 469, 164);
        addObject(ventilador,161, 393);
        addObject(ventilador22, 354, 299);
        addObject(ventilador3, 267, 497);

        Picos picos = new Picos();
        addObject(picos, 346, 511);

        Picos picos2 = new Picos();
        addObject(picos2,185, 186);

        Picos picos3 = new Picos();
        addObject(picos3, 334, 404);

        Check check = new Check();
        addObject(check, 178, 457);

        Picos picos4 = new Picos();
        addObject(picos4, 473, 238);
        picos4.turn(270);

        Viento v1=new Viento(ventilador,0);
        addObject(v1,212, 393);
        Viento v2=new Viento(ventilador3,0);
        addObject(v2,313, 498);
        Viento v3=new Viento(ventilador2,1);
        addObject(v3,419, 164);
        Viento v4=new Viento(ventilador22,1);
        addObject(v4,303, 299);

        Jugador jugador = new Jugador();

        JugadorBack jugadorback = new JugadorBack(jugador);
        addObject(jugadorback, 300, 50);
        addObject(jugador, 300, 50);
        jugador.iniciaVidas();
        BloqueChico bloquechico = new BloqueChico();
        addObject(bloquechico, 212, 286);

        BloqueChico bloquechico3 = new BloqueChico();
        addObject(bloquechico3, 411, 486);

        BloqueChico bloquechico4 = new BloqueChico();
        addObject(bloquechico4, 409, 161);

        BloqueChico bloquechico5 = new BloqueChico();
        addObject(bloquechico5, 154, 217);

        Fijo fijo = new Fijo();
        addObject(fijo, 360, 336);
        fijo.setLocation(354, 330);
        Fijo fijo2 = new Fijo();
        addObject(fijo2, 195, 216);
        Fijo fijo3 = new Fijo();
        addObject(fijo3, 222, 502);

        fijo.turn(135);
        fijo2.turn(45);
        fijo3.turn(135);

        bloquechico5.turn(45);
        bloquechico4.turn(135);
        bloquechico3.turn(135);

        bloque10.setLocation(300, 116);
        bloquechico.setLocation(122, 364);
        bloque8.setLocation(400, 312);
        bloquechico3.setLocation(446, 431);

        Nivel nivel = new Nivel();
        addObject(nivel, 519, 27);

        check.setLocation(278, 423);
        
        
        
        
        
        Boton boton = new Boton();
        addObject(boton, 162, 458);
        Boton boton2 = new Boton();
        addObject(boton2, 163, 363);
        Boton boton3 = new Boton();
        addObject(boton3, 161, 263);
        Boton boton4 = new Boton();
        addObject(boton4, 163, 166);
    }
    

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
    public void menu()
    {
       
    }


}
